Producers & Consumers
In messaging systems, the producer-consumer problem is a classic example of a multi-process synchronization problem.

Producers
Producers generate data and put it into a buffer or queue.
Consumers
Consumers consume the data from the buffer. Decoupling them allows systems to scale independently.